
        <html>
			<head>
			     <title>web攻击日志分析之新手指南 - 奔跑的小胖子</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/%e8%bf%90%e7%bb%b4%e5%ae%89%e5%85%a8/5411">http://drops.wooyun.org/%e8%bf%90%e7%bb%b4%e5%ae%89%e5%85%a8/5411</a></h1>
				
      <p>
        <p>from:http://resources.infosecinstitute.com/log-analysis-web-attacks-beginners-guide/</p>

<h1>0x00 前言</h1>

<hr />

<p>现实中可能会经常出现web日志当中出现一些被攻击的迹象，比如针对你的一个站点的URL进行SQL注入测试等等，这时候需要你从日志当中分析到底是个什么情况，如果非常严重的话，可能需要调查取证谁来做的这个事情，攻击流程是什么样子的。</p>

<p>除此之外，还有其他场景。</p>

<p>作为一名管理员，理解如何从安全的角度来分析日志真的很重要。</p>

<p>这篇文章内容包括了日志分析的一些基础知识，可以解决上述需求。</p>

<!--more-->

<h1>0x01 准备</h1>

<hr />

<p>出于演示目的，我进行以下设置。</p>

<h2>Apache 服务器</h2>

<p>预安装在Kali Linux</p>

<p>可以用以下命令开启：</p>

<pre><code>service apache2 start
</code></pre>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003005920442.png" alt="enter image description here" /></p>

<h2>MySQL</h2>

<p>预安装在Kali Linux</p>

<p>可以用以下命令开启：</p>

<pre><code>service mysql start
</code></pre>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010056829.png" alt="enter image description here" /></p>

<h2>使用PHP-MySQL创建一个有漏洞的web应用</h2>

<p>我使用PHP开发了一个有漏洞的web应用并且把它放在上面提到的 Apache-MySQL里面。</p>

<p>上述设置完成后，我用了一些Kali Linux中的自动工具（ZAP、w3af）扫描这个有漏洞的应用的URL。</p>

<p>现在让我们来看看分析日志中的不同情况。</p>

<h1>0x02 Apache服务中的日志记录</h1>

<hr />

<p>Debian系统上Apache服务器日志的默认位置为：<code>/var/log/apache2/access.log</code></p>

<p>日志记录只是在服务器上存储日志。我还需要分析日志以得出正确结果。在接下来的一节里，我们将看到我们如何分析Apache服务器的访问日志以找出web站点上是否有攻击尝试。</p>

<p>分析日志</p>

<p>手动检查</p>

<p>在日志量较小的情况下，或者如果我们查找一个指定关键词，可以使用像grep表达式这样的工具观察日志。</p>

<p>在下图中，我们在URL中试图搜寻所有关键词为“union”的请求。</p>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010011634.png" alt="enter image description here" /></p>

<p>从上图中，我们可以看到URL中的“union select 1,2,3,4,5”请求。很明显，ip地址为 192.168.56.105的某人尝试了SQL注入。 类似地，当我们有自己的关键词时可以搜索特殊的关键词。</p>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010062720.png" alt="enter image description here" /></p>

<p>在下图中，我们正在搜索试图读取“/etc/passwd”的请求，很明显是本地文件包含尝试。</p>

<p>如上面的截图所示，我们有许多本地文件包含的尝试，且这些请求发送自ip地址 127.0.0.1。</p>

<p>很多时候，能轻易通过日志看出是否是自动化扫描器产生的。</p>

<p>举例来说， IBM appscan在许多攻击payload中使用“appscan”这个词。所以，在日志中查看这样的请求，我们基本就可以判断有人在使用appscan扫描网站。</p>

<p>Microsoft Excel也是一个打开日志文件和分析日志的不错的工具。我们可以通过指定“空格”为分隔符以用excel打开日志文件。</p>

<p>当我们手头没有日志分析工具时，这个也挺好用的。</p>

<p>除了这些关键词，在分析期间要了解HTTP状态代码的基础知识。以下是关于HTTP状态代码的高级信息的表格。</p>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010029233.jpg" alt="enter image description here" /></p>

<h1>0x03 Web shells</h1>

<hr />

<p>webshell是网站/服务器的另一个问题。webshell可以已web server权限控制服务器。</p>

<p>在一些情况下，我们可以使用webshell来访问所有放在相同服务器上的其他站点。</p>

<p>以下截图显示了Microsoft Excel 中开启相同的access.log文件。</p>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010062287.png" alt="enter image description here" /></p>

<p>我们清楚地看到有一个叫“b374k.php”的文件被访问了。“b374k”是一个流行的webshell，因此这个文件是很可疑的。</p>

<p>查看相应代码“200”，本行表明有人上传了一个webshell并访问了它。</p>

<p>在许多情况下，攻击者重命名webshell的名字以避免怀疑。我们必须变得聪明点，看看被访问的文件是否是常规文件或者是否他们看起来不太一样。我们可以更进一步，如果任何文件看起来可疑的话，还可以查看文件类型和时间戳。</p>

<pre><code>One single quote for the win
</code></pre>

<p>SQL注入是web应用中最常见的漏洞之一。大多数学习web应用安全的人是从学习SQL注入开始的。</p>

<p>识别一个传统的SQL注入很容易，给URL参数添加一个单引号看看是否报错。</p>

<p>任何我们传递给服务器的东西都会被记录，并且可以朔源。</p>

<p>以下截图显示了日志当中记录了有对参数user传入单引号测试是否有SQL注入的行为。</p>

<p>%27是单引号的URL编码。</p>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010015238.png" alt="enter image description here" /></p>

<p>出于管理目的，我们还可以运行查询监视来查看数据库中的哪个请求被执行了。</p>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010111301.png" alt="enter image description here" /></p>

<p>如果我们观察以上图片，传递一个单引号给参数“user”的SQL语句被执行了。</p>

<h1>0x04 使用自动化工具分析</h1>

<hr />

<p>当存在大量日志时。手动检查就会变得困难。在这种情景下，除了一些手动检查之外我们可以使用自动化工具。</p>

<p>虽然有许多高效的商业工具，但是我要向你们介绍一款被称为“Scalp”的免费工具。</p>

<p>据他们的官方链接所说，Scalp是用于Apache服务器，旨在查找安全问题的日志分析器。主要理念是浏览大量日志文件并通过从HTTP/GET中提取可能的攻击。</p>

<p>Scalp可以从以下链接下载：</p>

<p>https://code.google.com/p/apache-scalp/</p>

<p>Scalp是python脚本，所以要求我们的机器中安装python。</p>

<p>以下图片显示该工具的帮助。</p>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010142838.png" alt="enter image description here" /></p>

<p>如我们在上图所见，我们需要使用标志-l来提供要分析的日志文件。</p>

<p>同时，我们需要提供使用标志-f提供一个过滤文件让Scalp在access.log文件中识别可能的攻击。</p>

<p>我们可以使用PHPIDS项目中的过滤器来检测任何恶意的尝试。</p>

<p>该文件名为“default_filter.xml ”，可以从以下链接中下载：</p>

<p>https://github.com/PHPIDS/PHPIDS/blob/master/lib/IDS/default_filter.xml</p>

<p>以下代码块是取自上面链接的一部分。</p>

<pre><code>#!html
&lt;filter&gt;
      &lt;id&gt;12&lt;/id&gt;
      &lt;rule&gt;&lt;![CDATA[(?:etc\/\W*passwd)]]&gt;&lt;/rule&gt;
      &lt;description&gt;Detects etc/passwd inclusion attempts&lt;/description&gt;
      &lt;tags&gt;
          &lt;tag&gt;dt&lt;/tag&gt;
          &lt;tag&gt;id&lt;/tag&gt;
          &lt;tag&gt;lfi&lt;/tag&gt;
      &lt;/tags&gt;
      &lt;impact&gt;5&lt;/impact&gt;
&lt;/filter&gt;
</code></pre>

<p>它是使用XML标签定义的规则集来检测不同的攻击测试。以上代码片段是检测文件包含攻击尝试的一个示例。</p>

<p>下载此文件之后，把它放入Scalp的同一文件夹下。</p>

<p>运行以下命令来使用Scalp分析日志。</p>

<pre><code>#!bash
python scalp-0.4.py –l /var/log/apache2/access.log –f filter.xml –o output –html
</code></pre>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010114177.png" alt="enter image description here" /></p>

<p>“output”是报告保存的目录。如果不存在的话，由Scalp自动创建。-html是用来生成HTML格式的报告。 如我们在上图看到的那样，Scalp结果表明它分析了4001行，超过4024并发现了296个攻击模式。</p>

<p>运行上述命令后在输出目录内生成报告。我们可以在浏览器内打开它并查看结果。 下面截图显示的输出显示了目录遍历攻击尝试的一小部分。</p>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010124637.png" alt="enter image description here" /></p>

<h2>MySQL中的日志记录</h2>

<hr />

<p>本节论述了数据库中的攻击分析和监视它们的方法。</p>

<p>第一步是查看设置了什么变量。我们可以使用“show variables;”完成，如下所示。</p>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010195643.png" alt="enter image description here" /></p>

<p>接下来显示了上述命令的输出。</p>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010224611.png" alt="enter image description here" /></p>

<p>如我们在上图中看到的，日志记录已开启。该值默认为OFF。</p>

<p>这里另一个重要的记录是 “log_output”，这是说我们正在把结果写入到文件中。另外，我们也可以用表。</p>

<p>我们可以看见“log&#95;slow&#95;queries”为ON。默认值为OFF。</p>

<p>所有这些选项都有详细解释且可以在下面提供的MySQL文档链接里直接阅读：</p>

<p>http://dev.mysql.com/doc/refman/5.0/en/server-logs.html</p>

<h2>MySQL的查询监控</h2>

<hr />

<p>请求日志记录从客户端处收到并执行的语句。默认记录是不开启的，因为比较损耗性能。</p>

<p>我们可以从MySQL终端中开启它们或者可以编辑MySQL配置文件，如下图所示。</p>

<p>我正在使用VIM编辑器打开位于/etc/mysql目录内的“my.cnf”文件。</p>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010282813.png" alt="enter image description here" /></p>

<p>如果我们向下滚动，可以看见日志正被写入一个称为“mysql.log”的文件内。</p>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010287852.png" alt="enter image description here" /></p>

<p>我们还能看到记录“log&#95;slow&#95;queries” ，是记录SQL语句执行花了很长时间的日志。</p>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010220270.png" alt="enter image description here" /></p>

<p>现在一切就绪。如果有人用恶意查询数据库，我们可以在这些日志中观察到。如下所示：</p>

<p><img src="http://static.wooyun.org/drops/20150330/2015033003010258236.png" alt="enter image description here" /></p>

<p>上图显示了查询命中了名为“webservice”的数据库并试图使用SQL注入绕过认证。</p>

<h1>0x05 更多日志记录</h1>

<hr />

<p>默认地，Apache只记录GET请求，要记录POST数据的话，我们可以使用一个称为“mod_dumpio”的Apache模块。要了解更多关于实现部分的信息，请参考以下链接：</p>

<p>http://httpd.apache.org/docs/2.2/mod/mod_dumpio.html</p>

<p>另外，我们可以使用“ mod security”达到相同结果。</p>

<p>Reference http://httpd.apache.org/docs/2.2/logs.html</p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          